#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>
//int sqrt()
//int main()
//{
//    int a, b, c;
//    scanf("%d %d %d", &a, &b, &c)
//        double S;
//    S = a / 2 + b / 2 + c / 2;
//    if (a + b > c && a + c > b && b + c > a)
//        double Area = sqrt(S * (S - a) * (S - b) * (S - c));
//    printf("%.3f\n", Area);
//    else
//        printf("The edges cannot make up of a triangle")
//        return 0;
//}
//int main()
//{
//	int a, b;
//	scanf("%d%d", &a, &b);
//	int i = 2;
//	while (i <= a || i <= b)
//	{
//		if(a/i!=0&&b/i!=0)
//
//	}
//	return 0;
//}
//int main()
//{
//	int a, b;
//	int temp;
//	int num1;
//	int num2;
//	scanf("%d%d", &a, &b);
//	num1 = a;
//	num2 = b;
//	if (num1>= num2)
//	{
//		while (b != 0)
//		{
//			temp = a % b;
//			a = b;
//			b = temp;
//			printf("%d\n", a);
//			printf("%d", num1 * num2 / a);
//		}
//	}
//	else if (num1 < num2)
//	{
//		while (a != 0)
//		{
//			temp = b % a;
//			b = a;
//			a = temp;
//			printf("%d\n", b);
//			printf("%d", num1 * num2 / b);
//		}
//	}
//	return 0;
//}i/*nt main()
//{
//    int a, b;
//    int num1, num2;
//    int temp;
//    scanf("%d%d", &a, &b);
//    num1 = a;
//    num2 = b;
//    if (num1 >= num2)
//    {
//        while (b != 0)
//            temp = a % b;
//        a = b;
//        b = temp;
//        printf("%d\n", a);
//        printf("%d", num1 * num2 / a);
//    }
//    if (num1 < num2)
//    {
//        while (a != 0)
//            temp = b % a;
//        b = a;
//        a = temp;
//        printf("%d\n", b);
//        printf("%d", num1 * num2 / b);
//    }
//    return 0;
//}*/

//int main()
//{
//    int a, b, c;
//    double s, m;
//    scanf("%d %d %d", &a, &b, &c);
//    s = (a + b + c) / 2.0;
//        if ((a+b)>c && (a+c) > b && (b+c)> a)
//        {
//            m = sqrt(s * (s - a) * (s - b) * (s - c));
//        printf("%.3f\n", m);
//    }
//    else
//        printf("The edges cannot make up of a triangle");
//    return 0;
//}
//int main()
//{
//    int a, b, c;
//    double s, m;
//    scanf("%d %d %d", &a, &b, &c);
//        s = (a + b + c) / 2.0;
//    if ((a + b) > c && (a + c) > b && (b + c) > a)
//    {
//        m = sqrt(s * (s - a) * (s - b) * (s - c));
//        printf("%.3f\n", m);
//    }
//    else
//        printf("The edges cannot make up of a triangle");
//    return 0;
//}
//int main()
//{
//    int a, b, c, d;
//    scanf("%d %d %d %d", &a, &b, &c, &d);
//    float result;
//    result = (a*c+b*d)/ 10.0;
//    printf("%.1f\n", result);
//    if (result >= 60)
//    {
//        printf("pass");
//    }
//    else
//    {
//        printf("fail");
//    }
//    return 0;
//}
//#include<stdio.h>
//int main()
//{
//    int a, b, r, t;
//    scanf("%d %d", &a, &b);
//    r = a % b;
//    t = a * b;
//    while (r != 0)
//        a = b;
//    b = r;
//    r = a % b;
//    printf("%d %d", b, t / b);
//    return 0;
//}
//int main()
//{
//    int n, a, sum, max, min, i;
//    scanf("%d", &n);
//    scanf("%d", &a);
//    i = 2;
//    sum = a;
//    max = a;
//    min = a;
//    while (i <= n)
//    {
//    
//    scanf("%d", &a);
//    sum = sum + a;
//    if (a > max)
//        max = a;
//    else if (a < min)
//        min = a;
//    i = i + 1;
//}
//    printf("%d %d %d", sum, max, min);
//    return 0;
//}
int main()
{
    int n, i, max, min, sum, a;
    scanf("%d", &n);
    scanf("%d", &a);
    i = 2;
    sum = a;
    max = a;
    min = a;
    while (i <= n)
    {
        scanf("%d", a);
        sum = sum + a;
        if (a > max)
            max = a;
        else if (a < min)
            min = a;
        i = i + 1;
    }
    printf("%d %d %d", sum, max,min);
    return 0;
}